package com.dankegongyu.lib.base

import android.text.TextUtils
import android.view.View
import android.widget.TextView
import androidx.annotation.ColorInt
import androidx.annotation.ColorRes
import androidx.annotation.DrawableRes
import androidx.appcompat.widget.Toolbar
import com.dankegongyu.lib.R
import com.dankegongyu.lib.common.base.CommonBaseActivity

/**
 * @author wpq
 * @version 1.0
 */
abstract class BaseAppActivity : CommonBaseActivity() {

    protected var mToolbar: Toolbar? = null
    protected var mTvTitle: TextView? = null

    override fun setContentView(layoutResID: Int) {
        super.setContentView(layoutResID)
        initToolBar()
    }

    private fun initToolBar() {
        mToolbar = findViewById<Toolbar>(R.id.toolbar)
        if (mToolbar != null) {
            mToolbar!!.title = "" // 去掉默认title
            setSupportActionBar(mToolbar)
            // 显示默认返回箭头
//            getSupportActionBar().setHomeButtonEnabled(true);
//            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//            mToolbar.setNavigationIcon(R.mipmap.ic_back);
// 默认点ToolBar的Navigation执行finish，需要自定义可以子类中重新设置监听
            mToolbar!!.setNavigationOnClickListener { finish() }
        }
        mTvTitle = findViewById<TextView>(R.id.tv_title)
    }

    protected fun setToolbarVisible(visible: Boolean) {
        if (mToolbar != null) {
            mToolbar!!.visibility = if (visible) View.VISIBLE else View.GONE
        }
    }

    /**
     * 设置mToolbar 标题
     */
    protected fun setPageTitle(title: String?) {
        if (mTvTitle != null && !TextUtils.isEmpty(title)) {
            mTvTitle!!.text = title
        }
    }

    /**
     * 设置标题字体颜色
     *
     * @param color
     */
    protected fun setToolbarTitleTextColor(@ColorInt color: Int) {
        if (mTvTitle != null) {
            mTvTitle!!.setTextColor(color)
        }
    }

    /**
     * 设置mToolbar 标题背景色
     */
    protected fun setToolbarTitleBackgroundColor(@ColorInt color: Int) {
        if (mTvTitle != null) {
            mTvTitle!!.setBackgroundColor(color)
        }
    }

    /**
     * 设置mToolbar 标题背景色
     */
    protected fun setToolbarTitleBgColor(@ColorRes id: Int) {
        if (mTvTitle != null) {
            mTvTitle!!.setBackgroundResource(id)
        }
    }

    /**
     * 设置
     *
     * @param color
     */
    protected fun setToolBarBackgroundColor(@ColorInt color: Int) {
        if (mToolbar != null) {
            mToolbar!!.setBackgroundColor(color)
        }
    }

    /**
     * 设置toolbar背景色
     */
    protected fun setToolbarBgColor(@ColorRes id: Int) {
        if (mToolbar != null) {
            mToolbar!!.setBackgroundResource(id)
        }
    }

    /**
     * 设置toolbar 导航icon
     */
    protected fun setToolbarNavigationIcon(@DrawableRes id: Int) {
        if (mToolbar != null) {
            mToolbar!!.setNavigationIcon(id)
        }
    }

    /**
     * 设置toolbar 导航 点击事件
     */
    protected fun setToolbarNavigationListener(clickListener: View.OnClickListener?) {
        if (mToolbar != null && clickListener != null) {
            mToolbar!!.setNavigationOnClickListener(clickListener)
        }
    }
}